package com.life.smile.service;

import java.util.List;
import java.util.Map;

import com.life.smile.entity.RearMenu;
import com.life.smile.entity.Role;
import com.life.smile.entity.vo.RearMenuVo;
import com.life.smile.entity.vo.UserLoginLogVo;


public interface MenuService {

	/**
	  * 展示所有菜单
	  * @return
	  */
	List<RearMenuVo> getAllMenu();
	//异步加载菜单数据
	List<RearMenuVo> selectAllMenuList(Map<String, Object> pmap);
	int getMenuCount(Map<String, Object> pmap);
	/**
	  * 查询所有的1.2级目录，用于添加菜单页面的表单回填
	  * @return
	  */
	List<RearMenu> getParentMenu();

	/**
	 * 添加菜单
	 * @param m
	 */
	void createMenu(RearMenu m);

	/**
	 * 删除菜单
	 * @param mid
	 */
	void menuDelete(Integer mid);

	/**
	 * 获取所有角色
	 * @return
	 */
	List<Role> getRoleList();

	/**
	 * 检查菜单是否存在
	 * @param url
	 * @return 存在返回success
	 */
	String checkMenu(String url);

	//修改前查询
	RearMenuVo getMenu(Integer mid);
	//修改
	void valueUpdata(RearMenu m);

	/**
	 * 查询所有的菜单列表
	 * @return
	 */
	List<RearMenu> searchMenuAll();

	/**
	 * 查询角色的菜单列表
	 * @param rid
	 * @return
	 */
	List<RearMenu> searchMenuByRoleId(Integer rid);

	/**
	 * 修改角色拥有的菜单
	 * @param menu_id_str
	 * @return 
	 */
	void updateRoleMenu(String menu_id_str,Integer rid);

	/**
	 * 菜单访问权限查询
	 * @param userType
	 * @param string
	 * @return
	 */
	boolean searchMenuByUser(Integer userType, String string);

	/**
	 * 查询角色是否存在
	 * @param rname
	 * @return
	 */
	boolean checkRole(String rname);

	/**
	 * 添加角色
	 * @param role
	 */
	void createRole(Role role);

	void roleDelete(Integer rid);

	/**
	 * 后台登录日志分页查询
	 * @param map
	 * @return
	 */
	List<UserLoginLogVo> loginLogList(Map<String, Object> map);
	Integer getCount(Map<String, Object> map);

	List<Role> getRoleName();
	
}
